<?php
/**
 * @version 0.5
 * @author Nick Swartele
 *
 */

require_once '../defs/constants.php';
require_once FILE_DB_DATABASE;

class DbVersie extends Database{

    private $versie_nr = '';
    private $beschrijving = '';
    private $datum = '';
    private $versieId = '';
    
    public function __construct($id= ''){
        if (DEBUG_LVL & DEBUG_LVL_CLASS) echo __FILE__ . __LINE__ .': ' . 'DbVersie()<BR/>';
        parent::__construct();
        // If versie id get versie data
        if (!empty ($id)){
            $this->DbGetVersieData($id);
           
        }
        else {
            $this->reset();
        }
    }
 
    public function save ($versie, $beschrijving, $datum){
        
        if ($this->checkString($versie, 10, 1) && 
            !empty ($beschrijving) && 
            !empty ($datum)){
           
            $query = "INSERT INTO `versie` ( `versie_nr`, `beschrijving`, `datum`) 
                VALUES (
                    '" . mysql_real_escape_string($versie) . "', 
                    '" . mysql_real_escape_string($beschrijving) . "', 
                    '" . mysql_real_escape_string($datum) . "'
                        )";
        
            if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';

            if (!$this->dbquery($query)){
                           throw new Exception(DB_ERROR_NIETVERWERKT);
            }
            
            //Update class attributes
            $this->versie_nr = $versie;
            $this->beschrijving = $beschrijving;
            $this->datum = $datum;
            $this->versieId = mysql_insert_id();
            
            return TRUE;
        }
        else {
            throw new Exception(DB_ERROR_INVOERFOUT);
        }
    }
    
    public function update ($versie, $beschrijving, $datum){
        
        if ($this->checkString($versie, 10, 1) && 
            !empty ($beschrijving) && 
            !empty ($datum)){
           
            $query = "UPDATE versie SET versie_nr = '" . mysql_real_escape_string($versie) . "', beschrijving = '" . mysql_real_escape_string($beschrijving) . "', datum = '" . mysql_real_escape_string($datum) . "' WHERE versie . versie_id ='" . mysql_real_escape_string($this->versie_id) . "'";
        
            if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';

            if (!$this->dbquery($query)){
                return FALSE;
            }
            
            //Update class attributes
            $this->versie_nr = $versie;
            $this->beschrijving = $beschrijving;
            $this->datum = $datum;
            
            return TRUE;
        }
        else {
           throw new Exception(DB_ERROR_INVOERFOUT);
        }
    }


    public function getVersieId(){
        return $this->versieId;        
    }
    
    public function getVersieNr(){
        return $this->versie_nr;
    }
    
    public function getDatum(){
        return $this->datum;
    }
    
    public function getBeschrijving(){
        return $this->beschrijving;
    }
    
    private function DbGetVersieData($id){
        
                 if($this->dbquery("SELECT versie_nr, datum, beschrijving FROM versie WHERE versie_id = '" . mysql_real_escape_string($id) . "' LIMIT 1 ")) {
             
             // Controle of er iets gevonden is in de database
             if($this->dbNumRows() >= 1){
                                 
                 return $this->dbFetchAll();
                 
             } else {
                 echo DBBEDRIJF_ERROR_NOROW;
             }
                          
         } else {
             throw new Exception (DB_ERROR_COULDNOTSELECT);
         }
            
          if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
        
        $this->reset();
        
//        $query = mysql_query("SELECT versie_nr, datum, beschrijving FROM versie WHERE versie_id = '" . mysql_real_escape_string($id) . "' LIMIT 1 ");
//        $res = mysql_fetch_object($query);
//        
//        $this->versie_nr = $res->versie_nr;
//        $this->beschrijving = $res->beschrijving;
//        $this->datum = $res->datum;
//        $this->versieId = $id;        
//        if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
    }
    
    public function DbGetNieuwsteVersie(){
        
        $query = mysql_query("SELECT * FROM versie ORDER BY versie_id DESC LIMIT 1");
        if (!$res = mysql_fetch_object($query)){
            
            $this->reset();
            return FALSE;
        }
        
        //Update Class Attributes
        $this->versie_nr = $res->versie_nr;
        $this->beschrijving = $res->beschrijving;
        $this->datum = $res->datum;
        $this->versieId = $res->versie_id;
        
        if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
    }
    
    public function __destruct() {
        parent::__destruct();
    }
}

class TestDbVersie{
    public function TestDbVersie(){
        $test = new DbVersie(1);
        
        //getters
        echo $test->getVersieId() . " Versie Id<br />";
        echo $test->getVersieNr() . " Versie Nr<br />";
        echo $test->getDatum() . " Datum<br />";
        echo $test->getBeschrijving() . " Beschijving<br />";
        
        // save
        $test->save('2', 'Beschrijving', '2011-06-22');
    }
}
?>